1. Field of the Invention
This invention relates to computer archive software. Particularly, this invention relates to computer archive software that stores immutable data objects such as Write-Once-Read-Many (“WORM”) files.
2. Description of the Related Art
Computer archive software stores data objects, such as files, in order to preserve them for a period of time. The files in the archive are required to be immutable—after the file is completely written, it is not allowed to be changed. Determining when a file has been completely written is problematic. Protocols for sending data to the archive system (such as NFS) do not provide an open/close semantic, making it impossible to simply declare the object to be immutable at close.
Prior archive systems rely on timeout approaches or overload approaches to determine when a file is completely written and can therefore be changed to be immutable. Using a timeout approach, an archive system waits a certain period of time (such as 30 or 60 seconds) following the last write to the object before declaring the object immutable. Such a timeout approach works but is subject to failures. For example, a network outage or application pause may cause the timeout period to pass without the application having finished writing the file. When the timeout period passes, an archive system using the timeout approach will transition the file to immutable. A failure will occur when the application sends a subsequent write. Such an error forces the archive system to create a new object and to start over.
Other archive systems use an overload approach. With this technique, following completion of the writing of an object to the archive, an update to a file attribute signals the archive system to treat the file as immutable. U.S. Pat. No. 7,155,460 by McGovern et al. discloses an overload approach in which “the client calls up the file properties dialog and sets the read-only attribute for the WORM file on drive W. The file server's file system recognizes the transition of the file from not-read-only to read-only state and thenceforth designates the file as WORM and all the above restrictions or modification, changes in attribute, etc. are enforced. Significantly, any subsequent attempt by the client to modify the read-only state of the file is denied, and a permission denied message is returned to the client from the file server” (col. 13, lines 29-40). The overload approach requires modification to the application to enable it to overload the file attribute in the agreed-upon fashion to indicate that the file should be transitioned to WORM.